﻿using System;

namespace GameLogic.Controls
{
    public interface IGameFeatures
    {
        event EventHandler<ScoresChangedEventArgs> ScoresChanged; 
        event EventHandler<LivesChangedEventArgs> LivesChanged;
        event EventHandler<TimeChangedEventArgs> TimeChanged; 
        event EventHandler<GameOverEventArgs> GameOver;

        string GameName { get; }
        string DeveloperName { get; }
        string CompanyName { get; }
        string Description { get; }

        bool IsTimeBased { get; }
        bool IsLifeBased { get; } 

        TimeSpan GameDuration { get; }
        Uri SettingsPage { get; }   

        void Start(); 
        void Stop(); 
        void Pause(); 
        void Resume(); 
       
        void OnScoresChanged(int scores); // DS: required by ChangeGamePropertyBehavior!
        void OnLivesChanged(int lives); // DS: required by ChangeGamePropertyBehavior!
        
    }
}
